package com.honglv.service.impl;

import com.honglv.mapper.PersonalInfoMapper;
import com.honglv.pojo.dto.UpdateInfoDTO;
import com.honglv.pojo.entity.Admin;
import com.honglv.pojo.entity.User;
import com.honglv.pojo.result.Result;
import com.honglv.pojo.vo.GetAdminInfoVO;
import com.honglv.pojo.vo.GetUserInfoVO;
import com.honglv.pojo.vo.UpdateInfoVO;
import com.honglv.service.PersonalInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Auther: 生
 * @Date: 2024/04/07/18:03
 * @Description:
 */
@Service
@Slf4j
public class PersonalInfoServiceImpl implements PersonalInfoService {

    @Autowired
    private PersonalInfoMapper personalInfoMapper;

    @Override
    public Result getInfo(Long id , Integer status) {
        if (status == 1){
            Admin admin = personalInfoMapper.selectAdminById(id);
            GetAdminInfoVO getAdminInfoVO = new GetAdminInfoVO();
            BeanUtils.copyProperties(getAdminInfoVO,admin);
            return Result.success("管理员信息：",getAdminInfoVO);
        }else if (status == 0){
            User user = personalInfoMapper.selectUserById(id);
            GetUserInfoVO getUserInfoVO = new GetUserInfoVO();
            BeanUtils.copyProperties(getUserInfoVO,user);
            return Result.success("用户信息：",getUserInfoVO);
        }else {
            return Result.error("请求错误");
        }
    }

    @Override
    public Result updateInfo(UpdateInfoDTO updateInfoDTO) {
        personalInfoMapper.updateInfo(updateInfoDTO);
        return Result.success();
    }

    @Override
    public Result getInfoBeforeUpdate(Long id, Integer status) {
        if (status == 1){
            Admin admin = personalInfoMapper.selectAdminById(id);
            UpdateInfoVO updateInfoVO = new UpdateInfoVO();
            BeanUtils.copyProperties(updateInfoVO,admin);
            return Result.success("VO管理员信息：",updateInfoVO);
        }else if (status == 0){
            User user = personalInfoMapper.selectUserById(id);
            UpdateInfoVO updateInfoVO = new UpdateInfoVO();
            BeanUtils.copyProperties(updateInfoVO,user);
            return Result.success("VO管理员信息：",updateInfoVO);
        }else {
            return Result.error("请求错误");
        }
    }
}
